//
// Created by zhengwei.
//
/*
标题：蚂蚁感冒

    长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左，有的朝右。

    每只蚂蚁都只能沿着杆子向前爬，速度是1厘米/秒。

    当两只蚂蚁碰面时，它们会同时掉头往相反的方向爬行。

    这些蚂蚁中，有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时，会把感冒传染给碰到的蚂蚁。

    请你计算，当所有蚂蚁都爬离杆子时，有多少只蚂蚁患上了感冒。


【数据格式】

    第一行输入一个整数n (1 < n < 50), 表示蚂蚁的总数。

    接着的一行是n个用空格分开的整数 Xi (-100 < Xi < 100), Xi的绝对值，表示蚂蚁离开杆子左边端点的距离。
    正值表示头朝右，负值表示头朝左，数据中不会出现0值，也不会出现两只蚂蚁占用同一位置。
    其中，第一个数据代表的蚂蚁感冒了。

    要求输出1个整数，表示最后感冒蚂蚁的数目。

例如，输入：
3
5 -2 8
程序应输出：
1

再例如，输入：
5
-10 8 -20 12 25
程序应输出：
3

资源约定：
峰值内存消耗 < 256M
CPU消耗  < 1000ms


请严格按要求输出，不要画蛇添足地打印类似：“请您输入...” 的多余内容。

所有代码放在同一个源文件中，调试通过后，拷贝提交该源码。

注意: main函数需要返回0
注意: 只使用ANSI C/ANSI C++ 标准，不要调用依赖于编译环境或操作系统的特殊函数。
注意: 所有依赖的函数必须明确地在源文件中 #include <xxx>， 不能通过工程设置而省略常用头文件。

提交时，注意选择所期望的编译器类型。
*/
#include <iostream>
using namespace std;

int main(int argc, const char * argv[]) {
    int n;
    scanf("%d",&n);
    int arr[n];
    for (int i = 0; i < n; ++i) {
        scanf("%d",&arr[i]);
    }
    int x = arr[0];
    if(x>0){//向右
        int ans=1;
        for (int i = 0; i < n; ++i) {
            if(arr[i]<0&&-arr[i]>x)//从右向左
                ans++;
        }
        if(ans!=1)//有从右到左
            for (int i = 0; i < n; ++i) {
                if(arr[i]>0&&arr[i]<x)//从右向左
                    ans++;
            }
        
        printf("%d\n",ans);
        
    } 
    
    if(x<0){//向左
//        左侧从左到右的
        int ans=1;
        for (int i = 0; i < n; ++i) {
            if(arr[i]>0&&arr[i]<-x)
                ans++;
        }
        if(ans!=1)
            for (int i = 0; i < n; ++i) {
                if(arr[i]<0&&-arr[i]>-x)
                    ans++;
            }
        printf("%d\n",ans);
    }
    
    return 0;
}